from api_tests.base_api import BaseApi

class ChatHistoryAdminListApi:
    def __init__(self):
        self.api = BaseApi()
        self.url = f"{self.api.base_url}/chatHistory/admin/list/page/vo"
    
    def get_all_chat_history(self, page_num=1, page_size=10, chat_id=None, app_id=None):
        """
        管理员分页查询所有对话历史
        
        Args:
            page_num: 页码，默认1
            page_size: 每页大小，默认10
            chat_id: 对话ID（可选，用于筛选）
            app_id: 应用ID（可选，用于筛选）
            
        Returns:
            str: 格式化的响应结果
        """
        # 构建请求参数
        chat_history_query_request = {
            "pageNum": page_num,
            "pageSize": page_size
        }
        
        # 添加可选参数
        if chat_id:
            chat_history_query_request["id"] = chat_id
        if app_id:
            chat_history_query_request["appId"] = app_id
        
        # 发送请求（需要管理员权限）
        response = self.api.post(
            url=self.url,
            json=chat_history_query_request,
            auth_type="admin"
        )
        
        # 解析和格式化响应
        result, error = self.api.parse_response(response)
        return self.api.format_result(result, error)

# 测试示例
if __name__ == "__main__":
    chat_api = ChatHistoryAdminListApi()
    result = chat_api.get_all_chat_history(
        page_num=1,
        page_size=10
    )
    print(result)